<style>
    .tr_access {
        background:#00C24E;
        color:#fff;
    }

    .tr_danger {
        background:#FF6F0F;
        color:#fff;
    }
</style>

<div class="container-fluid">
    <div class="wrapper">
        <div class="panel" id="nav">
            <div class="panel-heading"><h3 class="panel-title">扫描质检</h3></div>
            <div class="panel-body">

                <div class="container-fluid">
                    <div class="col-sm-12 col-md-2  add-space">
                        <div class="input-group input-group-md">
                            <span class="input-group-addon">批次号</span>
                            <input class="form-control" type="text" name="batchCode" id="batchCode"
                                   onkeyup="this.value=this.value.replace(/\s/g,'')">
                        </div>
                    </div>
                    <div class="col-sm-12 col-md-2  add-space">
                        <div class="input-group input-group-md">
                            <span class="input-group-addon">质标确认状态</span>
                            <select type="text" name="skuCheckSign" class="form-control" id="skuCheckSign">
                                <option value="">请选择</option>
                                <option value="10">待确认</option>
                                <option value="-1">无需确认</option>
                                <option value="20">已确认</option>
                            </select>
                        </div>
                    </div>

                    <div class="col-sm-12 col-md-2 add-space">
                        <div class="input-group input-group-md">
                            <span class="input-group-addon">收货明细号</span>
                            <input type="text" class="form-control" name="recieveDetailsId" id="recieveDetailsId"
                                   onkeyup="this.value=this.value.replace(/\D/g,'')"/>
                        </div>
                    </div>
                    <div class="col-md-2 add-space">
                        <input class="btn btn-primary" type="button" value=" 查询 " onclick="getInfo()">
                        <button onclick="doPardonCheckData();" type="button" class="btn btn-danger" style="margin-left: 40px;">处理重复质检项</button>
                    </div>

                </div>
                <div class="clearfix"></div>
                <hr>
                <table class="table" cellspacing="0" width="100%">
                    <thead>
                    <tr>
                        <!--<th width="20"><input id="checkAll" type="checkbox"></th>-->
                        <th>站点</th>
                        <th>批次号</th>
                        <th>供应商名称</th>
                        <th>采购单号</th>
                        <th>退税类型</th>
                        <th>收货明细单号</th>
                        <th>SKU</th>
                        <th>采购名称</th>
                        <th>所属仓库</th>
                        <th>备注</th>
                        <th>质标确认</th>
                        <th>属性</th>
                        <th>采购量</th>
                        <th>到货量</th>
                        <th>需质检量</th>
                        <th>合格量</th>
                        <th>不合格量</th>
                        <th>不合格原因</th>
                        <th>操作</th>

                    </tr>
                    </thead>
                    <tbody id="txtHint">
                    </tbody>
                </table>
                <div class="clearfix clear"></div>
            </div>
        </div>
    </div>
</div>

<script>
    /**
     * 根据收货明细单号或者批次号获取详情
     */
    function getInfo() {
        var recieveDetailsId = $("#recieveDetailsId").val();
        var batchCode = $("#batchCode").val();
        var skuCheckSign = $("#skuCheckSign option:selected").val();

        if ('' == recieveDetailsId && '' == batchCode) {
            layer.msg('请填入收货明细单号或者批次号',{'icon':'5'});
            return;
        }

        $.ajax({
            url: "__URL__/scan_check_index",
            data: {'recieveDetailsId': recieveDetailsId, 'skuCheckSign': skuCheckSign, 'batchCode': batchCode},
            type: 'get',
            dataType: 'json',
            async: true,

            success: function (data) {
                if (false == data) {
                    layer.msg('该收货明细单不存在!',{'icon':'5'});
                    $("#txtHint").html('<tr></tr>');
                    return;
                }

                var obj = (new Function('return ' + data + ';'))();
                var strTem = '';
                var button = '';
                var inputTd = '';

                for (var key in obj['result']) {
                    if ('10' == obj['result'][key]['skuchecksign'] || '0' == obj['result'][key]['logisticsCheck']) {
                        strTem += '<tr class="tr_danger">';
                        button = '<button type="button" class="btn btn-access btn-sm add-space">还没属性确认<br/>或者质标确认</button>';
                        inputTd = '<td><input readonly type="text" class="form-control w50"></td>' +
                                '<td><input readonly type="text" class="form-control w50"></td>' +
                                '<td><input readonly type="text" class="form-control w50"></td>';
                    } else if(parseInt(obj['result'][key]['arrival_quantity']) == parseInt(obj['result'][key]['check_count'])){
                        strTem += '<tr class="tr_access">';
                        button = '<button type="button" class="btn btn-access btn-sm add-space">已保存</button>' +
                                '<br/><a href="__URL__/print_qualified_tag?recieve_detail_id=' + obj['result'][key]['id'] + '&sku=' + obj['result'][key]['sku'] + '" class="btn btn-info btn-sm add-space" target="_blank">打印良品标签</a>' +
                                '<br/><a href="__URL__/print_sku_tag?recieve_detail_id=' + obj['result'][key]['id'] + '&sku=' + obj['result'][key]['sku'] + '" class="btn btn-info btn-sm add-space" target="_blank">打印SKU标签</a>'+
                                '<br/><a href="javascript:void(0);" onclick="reset_check_num( '+obj['result'][key]['id']+')" class="btn btn-primary btn-sm add-space reset_check_num">修改</a>';
                        inputTd = '<td>' + obj['result'][key]['qualified_quantity'] + '</td>' +
                                '<td>' + obj['result'][key]['unquality_count'] + '</td>' +
                                '<td>' + obj['result'][key]['unquality_remark'] + '</td>';
                    } else {
                        strTem += '<tr>';
                        // 默认为需质检量:value="'+(parseInt(obj['result'][key]['arrival_quantity']) - parseInt(obj['result'][key]['check_count'])) +'"
                        button = '<button type="button" id="check' + obj['result'][key]['id'] + '" class="btn btn-info btn-sm add-space" onclick="saveData(' + obj['result'][key]['id'] + ')">保存</button>';
                        inputTd = '<td><input id="qualifiedNum' + obj['result'][key]['id'] + '" type="text" class="form-control w50" onkeyup="calculateUnqualified(' + obj['result'][key]['id'] + ')"></td>' +
                                '<td><input id="unqualifiedNum' + obj['result'][key]['id'] + '" type="text" class="form-control w50"  readonly></td>' +
                                '<td><input id="unqualifiedReason' + obj['result'][key]['id'] + '" type="text" class="form-control w80"></td>';
                    }
                    if (null == obj['result'][key]['standard']) obj['result'][key]['standard'] = '';
                    if(obj['suppliers'][obj['result'][key]['supplier']]==undefined){
                        obj['suppliers'][obj['result'][key]['supplier']]='';
                    }
                    if(obj['warehouses'][obj['result'][key]['transfer_hopper_id']] ==undefined){
                        obj['warehouses'][obj['result'][key]['transfer_hopper_id']] ='';
                    }
                    if(obj['result'][key]['logic_attr'] ==null){
                        obj['result'][key]['logic_attr'] ='';
                    }
                    strTem +=
                            '<td>' + obj['result'][key]['site_id'] + '</td>' +
                            '<td>' + obj['result'][key]['batch_code'] + '</td>' +
                            '<td>' + obj['suppliers'][obj['result'][key]['supplier']] + '</td>' +
                            '<td>' + obj['result'][key]['purchaseorder_id'] + '</td>' +
                            '<td>' + obj['rebate'][obj['result'][key]['export_tax_rebate']] + '</td>' +
                            '<td>' + obj['result'][key]['id'] + '</td>' +
                            '<td>' + obj['result'][key]['sku'] + '</td>' +
                            '<td>' + obj['result'][key]['sku_name'] + '</td>' +
                            '<td>' + obj['warehouses'][obj['result'][key]['transfer_hopper_id']] + '</td>' +
                            '<td>' + obj['result'][key]['remark'] + '</td>' +
                            '<td>' + obj['skuchecksign'][obj['result'][key]['skuchecksign']] + '</td>' +
                            '<td>' + obj['result'][key]['logic_attr'] + '</td>' +
                            '<td>' + obj['result'][key]['quantity'] + '</td>' +
                            '<td>' + obj['result'][key]['arrival_quantity'] + '</td>' +
                            '<td id="checkNum' + obj['result'][key]['id'] + '">' + (parseInt(obj['result'][key]['arrival_quantity']) - parseInt(obj['result'][key]['check_count'])) + '</td>' +
                            inputTd +
                            '<td>' + button + '</td>' +
                            '</tr>';
                }
                $("#txtHint").html(strTem); //结果展示到id为txtHint的标签中
            },

            error: function () {
                layer.msg('查询失败,请检查输入,无法解决请找IT',{'icon':'5'});
            }
        });

    }

    /**
     * 扫描质检保存
     */
    function saveData(receiveDetailId) {
        var qualifiedNum = $('#qualifiedNum' + receiveDetailId).val();
        var checkNum = $('#checkNum' + receiveDetailId).text();
        var unqualifiedNum = $('#unqualifiedNum' + receiveDetailId).val();
        var unqualifiedReason = $('#unqualifiedReason' + receiveDetailId).val();

        if ('' == qualifiedNum) {
            layer.msg('请填写合格量!',{'icon':'5'});
            return;
        }

        if(unqualifiedNum!=''){
            if ('' == unqualifiedReason || '' == qualifiedNum) {
                layer.msg('请填写不合格原因!',{'icon':'5'});

                return;
            }
        }

        $.ajax({
            url: '__URL__/scanCheckSave',
            data: {'receiveDetailId': receiveDetailId,'qualifiedNum':qualifiedNum,'unqualifiedNum':unqualifiedNum,
                'checkNum':checkNum,'unqualifiedReason':unqualifiedReason },
            type: 'post',
            dataType: 'json',
            async: true,

            beforeSend:function(){
                //请求前的处理
                $('#check'+receiveDetailId).text('正在保存...');
                $('#check'+receiveDetailId).attr('disabled','true');
            },

            success: function (data) {
                layer.msg(data,{'icon':'6'});
                getInfo();
            },

            error: function () {
                layer.msg('保存失败,请重试,无法解决请找IT',{'icon':'5'});
                getInfo();
            }
        });
    }

    /**
     * 计算不合格量
     */
    function calculateUnqualified(receiveDetailId) {
        var qualifiedNum = $('#qualifiedNum' + receiveDetailId).val();
        var checkNum = $('#checkNum' + receiveDetailId).text();
        var unqualifiedNum = parseInt(checkNum) - parseInt(qualifiedNum);

        $('#qualifiedNum' + receiveDetailId).val(qualifiedNum.replace(/\D/g,''));

        if (parseInt(qualifiedNum)>parseInt(checkNum)) {
            $('#qualifiedNum' + receiveDetailId).val(checkNum);
            qualifiedNum = $('#qualifiedNum' + receiveDetailId).val();
            unqualifiedNum = parseInt(checkNum) - parseInt(qualifiedNum);
        }
        $('#unqualifiedNum' + receiveDetailId).val(unqualifiedNum);

        if (isNaN(unqualifiedNum)) {
            $('#unqualifiedNum' + receiveDetailId).val('');
        }

        if (0 == parseInt(unqualifiedNum)) {
            $('#unqualifiedReason' + receiveDetailId).val('无');
        } else {
            $('#unqualifiedReason' + receiveDetailId).val('');
        }
    }

    /**
     * 去掉字符串左右两侧的空格
     * @param str
     * @returns {void|string|XML}
     */
    function trim(str) {
        return str.replace(/(^\s*)|(\s*$)/g, "");
    }

    function doPardonCheckData() {
        var recieveDetailsId = $("#recieveDetailsId").val();
        if (recieveDetailsId == '') {
            layer.msg('收货明细单为空哦！');
            return false;
        } else {
            window.location.href = 'http://fbawarehouse.youkeshu.com/kohana/index.php/handclient/deletePardonCheck?env=product&recieveDetailsId=' + recieveDetailsId;
            //window.location.href = 'http://127.0.0.1/fbawarehouse/kohana/index.php/handclient/deletePardonCheck?env=test&recieveDetailsId=' + recieveDetailsId;
        }
    }

    /**
     * 修改质检数量
     */
    function reset_check_num(recieve_detail_id) {
        //询问框
        layer.confirm('您确定要修改吗？', {
            btn: ['确定','取消'] //按钮
        }, function(){
            $.ajax({
                type: "get",
                async: true,
                url: "{:U('CheckOrders/reset_check_num')}",
                data: {'recieve_detail_id':recieve_detail_id,},
                dataType: "json",
                success: function(data){
                    if (data.status == 0) {
                        layer.msg(data.info);
                        return;
                    }
                    switch (data.flag) {
                        case 1:
                            layer.msg('数量修改成功',{'icon':'6'});
                            getInfo();
                            break;
                        case -1:
                            layer.msg('质检单已生成出库单',{'icon':'5'});
                            break;
                        case -2:
                            layer.msg('保存失败,请重试,无法解决请找IT',{'icon':'5'});
                            break;
                        case -3:
                            layer.msg('质检单不良品已生成不良品出库单',{'icon':'5'});
                            break;
                    };
                }
            });
        }, function(){

        });
    }
</script>
